Add tests
authorJake Goulding <jake.goulding@integer32.com>
Fri, 15 Jul 2016 14:31:06 +0000 (10:31 -0400)
committerJake Goulding <jake.goulding@integer32.com>
Wed, 27 Jul 2016 23:47:46 +0000 (19:47 -0400)
tests/freshness.rs

index f5173bebcd59f866b4e3d167d47eae4b9658e841..ae6275486795ddefaa6743db5fbe8fe1c20ced05 100644 (file)
@@ -360,3 +360,68 @@ fn same_build_dir_cached_packages() {
 [COMPILING] a2 v0.0.1 ({dir}/a2)
 ", dir = p.url())));
 }
+
+#[test]
+fn no_rebuild_if_build_artifacts_move_backwards_in_time() {
+    let p = project("backwards_in_time")
+        .file("Cargo.toml", r#"
+            [package]
+            name = "backwards_in_time"
+            version = "0.0.1"
+            authors = []
+
+            [dependencies]
+            a = { path = "a" }
+        "#)
+        .file("src/lib.rs", "")
+        .file("a/Cargo.toml", r#"
+            [package]
+            name = "a"
+            version = "0.0.1"
+            authors = []
+        "#)
+        .file("a/src/lib.rs", "");
+
+    assert_that(p.cargo_process("build"),
+                execs().with_status(0));
+
+    p.root().move_into_the_past();
+    p.root().join("target").move_into_the_past();
+
+    assert_that(p.cargo("build").env("RUST_LOG", ""),
+                execs().with_status(0).with_stdout("").with_stderr(""));
+}
+
+#[test]
+fn rebuild_if_build_artifacts_move_forward_in_time() {
+    let p = project("forwards_in_time")
+        .file("Cargo.toml", r#"
+            [package]
+            name = "forwards_in_time"
+            version = "0.0.1"
+            authors = []
+
+            [dependencies]
+            a = { path = "a" }
+        "#)
+        .file("src/lib.rs", "")
+        .file("a/Cargo.toml", r#"
+            [package]
+            name = "a"
+            version = "0.0.1"
+            authors = []
+        "#)
+        .file("a/src/lib.rs", "");
+
+    assert_that(p.cargo_process("build"),
+                execs().with_status(0));
+
+    p.root().move_into_the_future();
+    p.root().join("target").move_into_the_future();
+
+    assert_that(p.cargo("build").env("RUST_LOG", ""),
+                execs().with_status(0).with_stdout("").with_stderr("\
+[COMPILING] a v0.0.1 ([..])
+[COMPILING] forwards_in_time v0.0.1 ([..])
+"));
+}